<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
   /*
    作用域: 作用域（Scope）是指变量、函数或其他标识符可以被访问的范围。
    它决定了代码中变量和函数的可见性和生命周期。
    JavaScript的作用域主要有两种类型：
        全局作用域（Global Scope）:
            —— 全局作用域在网页运行时创建，在网页关闭时销毁。
            —— 所用直接编写在script标签中的代码，都位于全局作用域中
            —— 全局作用域中的变量，可以在任意位置访问
        局部作用域（Local Scope）:
           1.函数作用域（Function Scope）
              —— 函数作用域在函数调用时产生，调用结束后销毁
              —— 函数每次调用，都会产生一个全新的函数作用域。
              —— 在函数内部定义的变量是局部变量，只能在函数内访问，外部无法访问。
           2.块级作用域（Block Scope）。
              —— 块作用域在代码块执行时创建，代码块执行完毕后销毁
              —— 在块作用域中声明的变量，是局部变量，只能在块内部访问，外部无法访问
        作用域链:从当前作用域依次往外层作用域寻找变量

   */
 let a = '变量a'

 {
  let a = '第一个代码块中的a'
  {
    console.log(a) // 就近原则 '第一个代码块中的a'
  }
 }

  </script>
</body>
</html>